home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1997 #1
/
Amiga Plus CD - 1997 - No. 01.iso
/
pd
/
daten
/
adm
/
termintool
/
termintool.lha
/
WBStartup
/
ADMGebStart
next >
Wrap
Text File
|
1996-07-11
|
11KB
|
378 lines
/* $VER: ADMGebStart V 2.0 (26.5.96) © Bernd Stange
Erinnert an fällige Geburtstage aus einer Geburtstagsliste
im ASCII Format, welche durch ADMGebList erstellt wurde */
/****************************************************************************/
Textedit = 'C:CED'
Textview = 'Multiview'
SETTINGS = 'ENVARC:AddressMaster.cfg'
/****************************************************************************/
Ver = 'V 2.0'
IF EXISTS('ENVARC:ADMscPrefs') THEN PfadVariable = 'ENVARC:'
ELSE
PfadVariable = 'S:'
IF ~SHOW(LIBRARIES,'rexxsupport.library') THEN
IF ~ADDLIB('rexxsupport.library',0,-30,0) THEN
EXIT 10
IF ~SHOW(LIBRARIES,'rexxreqtools.library') THEN
IF ~ADDLIB('rexxreqtools.library',0,-30,0) THEN
EXIT 10
IF EXISTS(PfadVariable'ADMscPrefs/ADMcheck') THEN DO
CALL OPEN(check,PfadVariable'ADMscPrefs/ADMcheck',R)
contr = READLn(check)
contrD = date()
CALL CLOSE(check)
IF contrD = contr THEN EXIT
ELSE DO
ADDRESS COMMAND
'Delete >NIL:' PfadVariable'ADMscPrefs/ADMcheck'
END
END
IF ~EXISTS(PfadVariable'ADMscPrefs') THEN CALL Fehler1
IF ~EXISTS(PfadVariable'ADMscPrefs/PfadADM') THEN CALL Fehler2
IF ~EXISTS(PfadVariable'ADMscPrefs/PfadADMDaten') THEN CALL Fehler3
IF ~EXISTS(PfadVariable'ADMscPrefs/PfadADMGebliste') THEN CALL Fehler4
IF ~EXISTS(PfadVariable'ADMscPrefs/Vorwarnung') THEN CALL Fehler5
IF ~EXISTS(PfadVariable'ADMscPrefs/VLOG') THEN CALL Fehler6
IF ~EXISTS(PfadVariable'ADMscPrefs/CheckAktuell') THEN CALL Fehler8
CALL OPEN(ADM,PfadVariable'ADMscPrefs/PfadADM',R)
CALL OPEN(ADMDaten,PfadVariable'ADMscPrefs/PfadADMDaten',R)
CALL OPEN(ADMGebliste,PfadVariable'ADMscPrefs/PfadADMGebliste',R)
CALL OPEN(ADMVorwarnung,PfadVariable'ADMscPrefs/Vorwarnung',R)
CALL OPEN(ADMVLog,PfadVariable'ADMscPrefs/VLOG',R)
CALL OPEN(CheckAktuell,PfadVariable'ADMscPrefs/CheckAktuell',R)
Adressmaster = ReadLn(ADM)
ADMGebliste = ReadLn(ADMGebliste)
ADMDaten = ReadLn(ADMDaten)
Warnung = ReadLn(ADMVorwarnung)
Voicepfad = Readln(ADMVLog)
CheckAktuell = ReadLn(CheckAktuell)
IF Adressmaster = 'nicht gesetzt' THEN CALL Fehler2
IF ADMDaten = 'nicht gesetzt' THEN CALL Fehler3
IF ADMGebliste = 'nicht gesetzt' THEN CALL Fehler4
IF Warnung = 'nicht gesetzt' THEN CALL Fehler5
IF Voicepfad = 'nicht gesetzt' THEN CALL Fehler6
IF ~EXISTS(ADMGebliste) THEN CALL Fehler7
IF CheckAktuell = 'nicht gesetzt' THEN CALL Fehler8
IF Voicepfad = 'Nein' THEN Voicelog = nein
ELSE Voicelog = ja
CALL CLOSE(ADM)
CALL CLOSE(ADMDaten)
CALL CLOSE(ADMGebliste)
CALL CLOSE(ADMVorwarnung)
CALL CLOSE(ADMVLog)
CALL CLOSE(CheckAktuell)
IF CheckAktuell ~= 'NEIN' & CheckAktuell ~= 'nicht gesetzt' THEN CALL CheckAktuell
Datum = DATE()
Tag = WORD(datum,1)
Month = WORD(datum,2)
Jahr = WORD(datum,3)
Zeit = DATE(I)
Tagejahr = DATE(D, Zeit,I)
CALL OPEN(sti,ADMGebliste,'r')
Linie = READLN(sti)
/* Schleife beginnt */
DO WHILE ~EOF(sti)
Datentag = WORD(linie,1)
Datenmonat = WORD(linie,2)
Datenjahr = WORD(linie,3)
Datendatum = jahr || datenmonat || datentag
DatenTagejahr = DATE("d",Datendatum,"s")
Diff = DatenTagejahr - Tagejahr
/* Bedingung beginnt */
IF diff >= 0 & diff <= Warnung THEN DO
Name = UPPER(WORD(linie,6)) UPPER(WORD(linie,7))
TERMINTEXT = UPPER(SUBWORD(linie,6,WORDS(linie)-6))
Ter = WORD(linie,4)
IF Datenjahr = '????' THEN ALter = '?'
ELSE Alter = Jahr - Datenjahr
IF Linie = '' THEN Telefon = ' '
ELSE Telefon = WORD(linie,WORDS(linie))
SELECT
WHEN diff = 0 THEN Text = "HEUTE"
WHEN diff = 1 THEN Text = "MORGEN"
WHEN diff = 2 THEN Text = "ÜBERMORGEN"
OTHERWISE Text = "am" datentag || ". " || datenmonat'.'
END
Geschlecht = WORD(linie,5)
IF Geschlecht = 'H' THEN Anrede = "seinen"
IF Geschlecht = 'F' THEN Anrede = "ihren"
IF Geschlecht = 'X' THEN DO
Anrede = "das"
Geburtstag = '. Jubiläum !'
END
ELSE Geburtstag = '. Geburtstag !'
Flags = 'rtez_flags = ezreqf_centertext'
ANFANG:
IF Ter = 'Termin:' THEN CALL Termin /*Nach Termin suchen*/
ELSE CALL Geburtstag /*Nach Geburtstag suchen*/
IF Auswahl = 2 THEN CALL Verschieben /*bei Auswahl "Verschieben"*/
IF Auswahl = 3 THEN CALL Liste /*bei Auswahl "Liste"*/
IF Auswahl = 0 THEN DO /*letzte Button*/
IF Ter = 'Termin:' THEN CALL Loeschen /*bei Auswahl Termin löschen*/
ELSE CALL Anwaehlen /*bei Auswahl Anwählen */
END /*letzte Button ENDE*/
END /* Vorwarnbedingung Ende */
Linie = READLN(sti)
END /*Schleife Ende */
CALL Ende
/************************* Sprungadressen *********************************/
/* Aufräumen*/
ENDE:
CALL CLOSE(STI)
CALL CLOSE(sort1)
CALL CLOSE(sort)
IF EXISTS('T:.tmp1') THEN DO
ADDRESS COMMAND
'copy' 'T:.tmp2' ADMGebliste
"delete T:.tmp1 T:.tmp2 >NIL:"
CALL MachAktuell
END
IF EXISTS('T:.tmp1edit') THEN DO
ADDRESS COMMAND
'Copy' 'T:.tmp1edit' ADMGebliste
"delete T:.tmp1edit >NIL:"
CALL MachAktuell
END
IF EXISTS('T:.tmp5') THEN DO
ADDRESS COMMAND
"delete T:.tmp5 T:.tmp6 >NIL:"
END
EXIT
CheckAktuell:
ADDRESS COMMAND
'list' ADMDaten 'LFormat="%d %t" >t:dat'
CALL OPEN(datum,'t:dat',R)
'list' ADMGebliste 'LFormat="%d %t" >t:dat1'
CALL OPEN(datum1,'t:dat1',R)
Da = READLN(datum)
Da1 = READLN(datum1)
CALL CLOSE(datum)
CALL CLOSE(datum1)
ADDRESS COMMAND
'Delete t:dat t:dat1 >NIL:'
IF DA ~= DA1 THEN DO
Flags = 'rtez_flags = ezreqf_centertext'
Titel = Ver 'DatumCheck:'
Gadget = '_Ja|_Nein, jetzt nicht'
Reqtext = 'A C H T U N G: Die Geburtstagsliste' ||'0A'x||,
'"' || ADMGebliste || '"' ,
||'0A'x|| 'scheint nicht aktuell zu sein !',
||'0A'x|| 'Soll ich die Liste gleich erneuern ?'
Auswahl = rtezrequest(Reqtext,Gadget,Titel,Flags)
IF Auswahl = 1 THEN DO
ADDRESS COMMAND
'SYS:Rexxc/rx' CheckAktuell
END
END
RETURN
/* Das Datum vom ADM-Datensatz */
/* dem Alter der Gebliste anpassen */
MachAktuell:
ADDRESS COMMAND
'list' ADMGebliste 'LFormat="%d %t" >t:dat'
CALL OPEN(datum,'t:dat',R)
Dat = READLN(datum)
CALL CLOSE(datum)
ADDRESS COMMAND
'DELETE t:dat >NIL:'
'c:setdate' ADMDaten Dat
RETURN
/*Nach Termin suchen*/
Termin:
Reqtext = 'Achtung Termin :'||'0A'x|| '' ||'0A'x|| '==> ' || Text '!' || ' <==' ||'0A'x||''||'0A'x|| TERMINTEXT
Gadget = '_OK|_Verschieben|_Liste|_Nachricht löschen'
Titel = Ver 'Terminhinweis :' datum
Auswahl = rtezrequest(Reqtext,Gadget,Titel,Flags)
RETURN
/*Nach Geburtstag suchen*/
Geburtstag:
Titel = Ver 'Geburtstagshinweis :' datum
Gadget = '_OK|_Verschieben|_Liste|_Anwählen'
ReqText = Name ||'0A'x|| 'hat' text Anrede Alter || Geburtstag ||'0A'x|| 'Tel.:' Telefon
Auswahl = rtezrequest(Reqtext,Gadget,Titel,Flags)
Return
/*bei Auswahl "Verschieben"*/
Verschieben:
ADDRESS COMMAND
'echo >' || PfadVariable || 'ADMscPrefs/ADMcheck' datum
CALL ENDE
RETURN
/*bei Auswahl "Liste"*/
Liste:
sortwahl = rtezrequest('Die Geburtstagsliste nach Datum oder Namen' ||'0A'x|| ,
'sortieren und dann anzeigen lassen ?' ||'0A'x||'0A'x||,
'Oder Editieren ?',
,'nach _Datum|nach _Namen|_Editieren|_Abbruch','Anfrage:',Flags)
CALL OPEN(SORTliste,ADMGebliste,R)
CALL OPEN(sort5,'t:.tmp5',w)
zeile = READLN(SORTliste)
DO WHILE ~EOF(SORTliste)
Datentag = WORD(zeile,1)
Datenmonat = WORD(zeile,2)
Datenjahr = WORD(zeile,3)
VorName = WORD(zeile,6)
Name =WORD(zeile,7)
Ter = WORD(zeile,4)
Telefon = WORD(zeile,WORDS(zeile))
TERMINTEXT = SUBWORD(linie,6,WORDS(linie)-6)
Data = Datentag || '.' || Datenmonat || '.' || Datenjahr
IF sortwahl = '2' THEN DO
Sortzeile = name || ',' vorname
Sortzeile = INSERT(Data,Sortzeile,28)
Sortzeile = INSERT('('Ter')',Sortzeile,40)
Sortzeile = INSERT(Telefon,Sortzeile,46)
IF WORD(zeile,4) ~= 'Termin:' THEN CALL WRITELN(sort5,Sortzeile)
END
IF sortwahl = '1' THEN DO
Sortzeile = data vorname name
Sortzeile = INSERT('('Ter')',Sortzeile,34)
Sortzeile = INSERT(Telefon,Sortzeile,41)
IF WORD(zeile,4) ~= 'Termin:' THEN CALL WRITELN(sort5,Sortzeile)
END
zeile = READLN(SORTliste)
END
CALL CLOSE(sort5)
CALL CLOSE(SORTliste)
IF sortwahl = '2' THEN DO
ADDRESS COMMAND
'sort t:.tmp5 t:.tmp6'
Textview 't:.tmp6'
CALL LISTE
END
IF sortwahl = '1' THEN DO
ADDRESS COMMAND
Textview 't:.tmp5'
CALL LISTE
END
IF sortwahl = '3' THEN DO
IF EXISTS('T:.tmp1edit') THEN DO
ADDRESS COMMAND
Textedit 'T:.tmp1edit'
END
ELSE DO
ADDRESS COMMAND
'Copy' ADMGebliste 'T:.tmp1edit'
Textedit 'T:.tmp1edit'
END
CALL LISTE
END
RETURN
/*bei Auswahl Termin löschen*/
loeschen:
ADDRESS COMMAND
'Copy' ADMGebliste 'T:.tmp1'
'Copy' ADMGebliste ADMGebliste'.bak'
CAll OPEN(sort,'T:.tmp1',r)
CAll OPEN(sort1,'T:.tmp2',w)
DO while ~EOF(sort)
Sortlinie = Readln(sort)
IF Sortlinie ~= Linie THEN DO
IF Sortlinie ~= '' THEN CALL WRITELN(sort1,Sortlinie)
END
END
CALL MachAktuell
RETURN
/*bei Auswahl Anwählen */
Anwaehlen:
IF ~SHOW('PORTS','ADM.1') THEN DO
IF EXISTS('c:wbrun') THEN DO
ADDRESS COMMAND
'WBrun >NIL:' AdressMaster
END
ELSE DO
PRAGMA(STACK,20000)
ADDRESS COMMAND
'run >NIL:' AdressMaster 'FROM' ADMDaten 'SETTINGS=' || SETTINGS
END
DO 2 WHILE ~SHOW('PORTS','ADM.1')
'sys:rexxc/WaitForPort ADM.1'
END
END
ADDRESS 'ADM.1'
OPTIONS RESULTS
ACTIVATEFIRST
DO UNTIL Nm = Telefon
GETADDRESS ADM
Nm = COMPRESS(ADM.TELEPHONE)
IF NM = Telefon THEN DO
IF Voicelog = 'JA' THEN DO
cmd = 'RUN >NIL:' Voicepfad '"' || ADM.FULLNAME || '"' '"' || ADM.telephone || '"'
ADDRESS COMMAND CMD
END
ELSE DO
ADDRESS 'ADM.1'
DIAL
END
END
ACTIVATENEXT
END
RETURN
Fehler1:
Reqtext = 'Achtung Fehler1:'||'0A'x|| '' ||'0A'x|| 'Bitte erst mit ADMscPrefs alle notwendigen Variablen einstellen !'
CALL Requester
Fehler2:
Reqtext = 'Achtung Fehler2:'||'0A'x|| '' ||'0A'x|| 'Bitte erst mit ADMscPrefs den Pfad vom AdressMaster einstellen !'
CALL Requester
Fehler3:
Reqtext = 'Achtung Fehler3:'||'0A'x|| '' ||'0A'x|| 'Bitte erst mit ADMscPrefs den Pfad des ADMDatensatzes' ||'0A'x|| 'von ADM anwählen !'
CALL Requester
Fehler4:
Reqtext = 'Achtung Fehler4:'||'0A'x|| '' ||'0A'x|| 'Bitte erst mit ADMscPrefs den Pfad für die Gebdatei anwählen ! '
CALL Requester
Fehler5:
Reqtext = 'Achtung Fehler5:'||'0A'x|| '' ||'0A'x|| 'Bitte erst mit ADMscPrefs die Anzahl der Vorwarntage einstellen !'
CALL Requester
Fehler6:
Reqtext = 'Achtung Fehler6:'||'0A'x|| '' ||'0A'x|| 'Bitte erst mit ADMscPrefs die Variable ====> VLog setzen !'
CALL Requester
Fehler7:
Reqtext = 'Achtung Fehler7:'||'0A'x|| '' ||'0A'x|| 'Es existiert keine ADMGebliste !' ||'0A'x|| 'Bitte erst mit dem Script ADMGebList.adm erstellen !'
CALL Requester
Fehler8:
Reqtext = 'Achtung Fehler8:'||'0A'x|| '' ||'0A'x|| 'Bitte erst mit ADMscPrefs die Variable Checkaktuell setzen !'
CALL Requester
Requester:
Flags = 'rtez_flags = ezreqf_centertext'
Titel = Ver 'Fehlermelung:'
Gadget = '_OK'
Auswahl = rtezrequest(Reqtext,Gadget,Titel,Flags)
EXIT